Today's computing devices have an ever-increasing amount of processing power. For example, a typical device has a central processing unit (CPU) with multiple processing cores that can each perform data processing. Further, the number of cores available on individual processors continues to increase. With the prevalence of multi-core processors comes the ability to perform multiple processing tasks on a CPU in parallel. For example, multiple processing threads that each handles a particular processing task can execute at the same time on respective cores of a processor. Thus, the speed with which multiple tasks can be completed is increased over previous single-core processors.
While available processing power has increased, many computing processes still utilize a serial processing approach for scheduling and/or managing processing tasks. For example, some applications are not configured to parallelize certain processing tasks, and thus do not leverage the parallel processing capabilities of multi-core processors. By not parallelizing processing tasks, these processes do not receive the performance benefits that result from parallel processing.